package JUC_Advanced.chapter1_CompletableFuture.api;

import JUC_Advanced.ThreadPool;

import java.util.concurrent.CompletableFuture;

/**
 * @Author: GuSongLiao
 * @Date: 2024/3/7 10:53
 * @Description: api deno
 */

/**
 * thenRun 会沿用上一个任务所使用的线程继续执行
 * thenRunAsync 会新开启一个线程执行
 * 其他方法包含 Async 功能相同
 */
public class CompletableFutureApi_Async {

    public static void main(String[] args) {

        CompletableFuture.runAsync(() -> {
            System.out.println("任务A开始执行" + Thread.currentThread().getName());
        }, ThreadPool.THREAD_POOL).thenRun(() -> {
            System.out.println("任务B开始执行" + Thread.currentThread().getName());
        }).thenRunAsync(() -> {
            System.out.println("任务C开始执行" + Thread.currentThread().getName());
        }).thenRun(() -> {
            System.out.println("任务D开始执行" + Thread.currentThread().getName());
        });


        System.out.println("主线程忙别的去了");
    }
}
